/**
 * 氏替换原则（Liskov Substitution Principle，LSP）</br>
 * ● 第一种定义，也是最正宗的定义：If for each object o1 of type S there is an object o2
 * of</br>
 * type T such that for all programs P defined in terms of T,the behavior of P
 * is unchanged when o1 is</br>
 * substituted for o2 then S is a subtype of T.（如果对每一个类型为S的对象o1，都有类型为T的对</br>
 * 象o2，使得以T定义的所有程序P在所有的对象o1都代换成o2时，程序P的行为没有发生变</br>
 * 化，那么类型S是类型T的子类型。）</br>
 * ● 第二种定义：Functions that use pointers or references to base classes must be
 * able to use</br>
 * objects of derived classes without knowing it.（所有引用基类的地方必须能透明地使用其子类的</br>
 * 对象。）</br>
 * 1.子类必须完全实现父类的方法 2.子类可以有自己的个性 3.覆盖或实现父类的方法时输入参数可以被放大 4. 覆写或实现父类的方法时输出结果可以被缩小
 * 
 * @author kongmou
 * @date 2018年2月26日上午11:30:51
 * @since jdk 1.8
 * 
 * @version 1.0
 */
package sixPrinciples.lsp;